1. Field of the Invention
The present invention relates to a computer system, and deals more particularly with a method, system, and computer-readable code for facilitating network delivery of Wireless Markup Language (WML) decks (or decks in similar notations) to memory-constrained client devices such as Wireless Application Protocol (WAP) devices, by applying a novel deck-reduction process to the decks, such that the decks are reduced by fragmentation into new decks of a manageable size.
2. Description of the Related Art
The Wireless Application Protocol, or xe2x80x9cWAPxe2x80x9d, is an industry standard protocol specification created for mobile Internet use. WAP was defined by the WAP Forum, and specifies protocols for delivering information over a wireless network to WAP client devices (where a xe2x80x9cWAP client devicexe2x80x9d, or xe2x80x9cWAP clientxe2x80x9d, is a device conforming to the WAP architectural requirements).
The WAP Forum has also defined the Wireless Markup Language, or xe2x80x9cWMLxe2x80x9d, which is a markup language for documents that are intended for delivery to WAP clients. A markup language uses specially-designated constructs referred to as xe2x80x9ctagsxe2x80x9dto delimit (or xe2x80x9cmark upxe2x80x9d) information. WML is based on the Extensible Markup Language (xe2x80x9cXMLxe2x80x9d), which is a standard grammar for markup languages. In the general case, a tag is a keyword that identifies what the data is which is associated with the tag, and is typically composed of a character string enclosed in special characters. xe2x80x9cSpecial charactersxe2x80x9d means characters other than letters and numbers, which are defined and reserved for use with tags. Special characters are used so that a parser processing the data stream will recognize that this a tag. In XML and its derivative notations, a tag is inserted preceding its associated data: a corresponding tag is also inserted following the data, to clearly identify where that data ends. As an example of using tags, the syntax xe2x80x9c less than email greater than xe2x80x9d could be used as a tag to indicate that the character string appearing in the data stream after this tag is to be treated as an e-mail address; the syntax xe2x80x9c less than /email greater than xe2x80x9d would then be inserted after the character string, to delimit where the e-mail character string ends. (Refer to xe2x80x9cWireless Application Protocol Wireless Markup Language Specification Version 1.1 (WAP WML), Proposed Version Feb. 3, 1999xe2x80x9d for more information on WML, and to xe2x80x9cExtensible Markup Language (XML), W3C Recommendation Feb. 10, 1998xe2x80x9d for more information on XML. These documents are available on the World Wide Web from Web sites http://www.wapforum.org and http://www.w3.org, respectively.)
WML is specifically designed for the limitations that are often inherent in the client devices used in the mobile, or wireless, computing environment. Client devices common in this environment include cellular phones, screenphones, pagers, and laptop computers. While laptop computers may be nearly equivalent in features and capabilities to non-mobile computing devices such as desktop computers, many of the other devices used in the wireless environment tend to be small, handheld devices that have limited memory and storage, as well as limited display space. Section 4.5, xe2x80x9cDevice Typesxe2x80x9d, of the WML specification provides a description of the characteristics of devices for which WML was designed. These characteristics include small display screen size, with low resolution; limited user input facilities; low power CPUs and small memory size; and capable of supporting only low bandwidth connections, therefore resulting in high latency. An example of this type of device is the Nokia 7110, a WAP-enabled cellular phone with a maximum display area of 6 lines of text. Another example device is the WorkPad available from the International Business Machines Corporation (xe2x80x9cIBMxe2x80x9d). This device is a handheld computer typically configured with several megabytes of storage, where that storage is as Random Access Memory (xe2x80x9cRAMxe2x80x9d) to avoid the system overhead associated with other types of storage such as disk drives. (xe2x80x9cWorkPadxe2x80x9d is a registered trademark of IBM.)
WML is defined using a metaphor of a deck of cards, where a WML deck is comprised of one or more cards. A WML deck is analogous to a document in XML, and is the unit of information identified by a URL (Uniform Resource Locator). Thus, a WML deck is also the unit of transmission, as it comprises the information delivered to the client machine in response to a request (e.g. from a client browser) for a particular URL. Each card within the deck specifies text and input elements, and is defined in Section 4.1, xe2x80x9cDefinitionsxe2x80x9d, of the WML specification as xe2x80x9ca single WML unit of navigation and user interfacexe2x80x9d. Thus, when a document author creates a WML deck, he divides the information into cards using xe2x80x9c less than card greater than xe2x80x9d and xe2x80x9c less than /card greater than xe2x80x9d tags to mark the beginning and end of each card.
Authors creating documents as WML decks typically create the decks to be small in size, to accommodate the memory and processing limitations inherent in the target client devices. However, problems often arise when a user of a WAP-enabled device requests a document that was not created specifically with the wireless device limitations in mind. For example, it is becoming commonplace for XML documents (created irrespective of the client device) to be transcoded or otherwise transformed for downloading. When the target device is a relatively powerful machine with a large storage capacity such as a desktop computer, then downloading the XML document is unlikely to create problems. However, when the target device is a constrained device, then there may not be sufficient space for receiving and storing the document on the device. In addition, the processing capabilities of a constrained device may be insufficient for a document created without regard to the limitations of these devices.
Extensible Stylesheet Language (xe2x80x9cXSLxe2x80x9d) style sheets provide an efficient means of filtering documents (such as XML documents), by defining translations on an input document that create only a specific set of desired document elements in the resulting output document. As is known in the art, a xe2x80x9cstyle sheetxe2x80x9d is a specification of a style that is to be used when presenting a document. Style sheets may also be utilized to describe transformations from one document type to another, such as transforming an XML document to a WML document. Style sheets may also be used as filters which describe transformations to reduce the amount of document content while maintaining the original document type. However, XSL style sheet filtering does not provide a means for limiting the size of the output document. WML decks in excess of 1 kilobyte in size may overload a constrained storage device, leading to undefined behavior when the device attempts to process the deck. From a user""s perspective, it is unacceptable to allow this undefined behavior to occur.
The Wireless Application Protocol Binary XML notation, or xe2x80x9cWBXMLxe2x80x9d, also uses a card and deck metaphor. WBXML is a compact binary form of XML, designed to reduce transmission size of XML documents in the wireless environment by performing a binary encoding of the document content. (The WBXML specification is available from the www.wapforum.org Web site.)
There are currently no known techniques for enabling constrained WAP client devices to receive WML or WBXML decks, and provide predictable, expected results from processing these decks, when a deck exceeds the size restrictions of the client device. Accordingly, what is needed is a technique that enables WML or WBXML decks to be transformed for transmission to a client device such that the decks are first reduced to a manageable size, but without any loss of document content.
An object of the present invention is to provide a technique with which oversized decks may be reduced to a manageable size without loss of content.
Another object of the present invention is to provide a technique whereby this deck reduction is performed on Wireless Markup Language (WML) decks.
It is a further object of the present invention to provide a technique whereby this deck reduction may be performed on decks encoded in other notations such as Wireless Binary Extensible Markup Language (WBXML).
It is another object of the present invention to provide this deck reduction technique whereby the result is then stored persistently, making it available to use upon a subsequent request for the original deck.
It is yet another object of the present invention to provide this deck reduction technique while introducing a minimal number of references to remote cards.
Other objects and advantages of the present invention will be set forth in part in the description and in the drawings which follow and, in part, will be obvious from the description or may be learned by practice of the invention.
To achieve the foregoing objects, and in accordance with the purpose of the invention as broadly described herein, the present invention provides a system, method, and computer program product for use in a computing environment capable of having a connection to a network for facilitating network delivery of documents encoded as decks to client devices. This technique comprises: fragmenting a deck into a plurality of sub-decks if the deck has a deck size larger than a target size, wherein each of the sub-decks then has a sub-deck size smaller than the target size and wherein the fragmenting does not discard deck content; and rebinding the sub-decks to one another. In one aspect, the fragmenting further comprises: decoupling a plurality of cards from the deck; and aggregating the decoupled cards into the sub-decks. The technique may further comprise: building a card adjacency graph, the graph comprising a plurality of nodes and links between selected ones of the nodes, wherein each of the nodes represents a card existing in or referenced from the deck and wherein each of the links represents an adjacency relationship between a pair of cards corresponding to a pair of the selected nodes; and applying a card localization process to the card adjacency graph. The applying may further comprise creating a set of distance tuples from the card adjacency graph, wherein the aggregating then uses this set of distance tuples. Preferably, each of the tuples pertains to a selected one of the links and is comprised of a numeric indicator of event binding commonality and a variable substitution factor.
In another aspect, the technique further comprises: receiving a request for the deck from a client device prior to the fragmenting; and forwarding a primary one of the sub-decks to the client device after the rebinding. The target size is preferably based upon this client device.
In a further aspect, the technique further comprises fragmenting zero or more oversized cards from a plurality of cards in the deck, wherein the oversized cards are characterized by having a card size larger than a target card size.
In yet another aspect, the technique further comprises storing the rebound sub-decks on a persistent storage medium.
The decks are preferably encoded using Wireless Markup Language (WML) or Wireless Application Protocol Binary XML notation (WBXML).
The present invention will now be described with reference to the following drawings, in which like reference numbers denote the same element throughout.